package com.rest;
/*

                  写字楼里写字间，写字间里程序员；
                  程序人'猿'写程序，又拿程序换酒钱。
                  酒醒只在网上坐，酒醉还来网下眠；
                  酒醉酒醒日复日，网上网下年复年。
                  但愿老死电脑间，不愿鞠躬老板前；
                  奔驰宝马贵者趣，公交自行程序员。
                  别人笑我忒疯癫，我笑自己命太贱；
                  不见满街漂亮妹，哪个归得程序'猿'？
━━━━━━神兽出没━━━━━━
 ┏┓   ┏┓
┏┛┻━━━┛┻┓
┃       ┃
┃   ━   ┃
┃ ┳┛ ┗┳ ┃
┃       ┃
┃   ┻   ┃
┃       ┃
┗━┓   ┏━┛
  ┃   ┃                    神兽保佑, 永无BUG!
  ┃   ┃       Code is far away from bug with the animal protecting
  ┃   ┗━━━┓
  ┃       ┣┓
  ┃       ┏┛
  ┗┓┓┏━┳┓┏┛
   ┃┫┫ ┃┫┫
   ┗┻┛ ┗┻┛
 */

import com.model.dbsql.modelVo.User;
import com.model.dbsql.modelVo.UserExample;
import com.model.dbsql.xmlmapper.UserMapper;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.*;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import java.util.ArrayList;
import java.util.Map;

/**
 * Created by 石头哥哥 on 11/10/15.
 * <p/>
 * springboot_test
 * <p/>
 * com.rest
 * <p/>
 * comments: 测试 restful
 */
@Component
@Path("/u")
@Produces(MediaType.APPLICATION_JSON)//返回数据类型
public class TestUserController {


    @Resource
    private UserMapper userMapper;

    @Resource
    private SqlSessionTemplate sqlSessionTemplate;


    @GET
    @Path("/user")
    public User user() {
        User user = new User();
        user.setNickname("test");
        user.setPassword("123456~");
        return user;
    }


    //@Context HttpServletRequest request
    //@QueryParam("username")  {id}/userlist?username=name
    @GET
    @Path("{id}/userlist")
    @Transactional(readOnly = true)
    public ArrayList<User> users(@PathParam("id")int id
    ,@QueryParam("username") String username,@Context HttpServletRequest request) {
        return (ArrayList<User>) userMapper.selectByExample(new UserExample());
    }

    @POST
    @Path("/profile")
    @Consumes(MediaType.MULTIPART_FORM_DATA)//接收处理类型
    @Produces("application/json")//返回类型
    public Map<Object, Object> uploadfile(MultipartFile multipartFile,@FormParam("username")String  username) {
        return null;
    }


}
